# include"comm.hpp"
#include<cassert>

// server负责维护管道【创建、使用、删除管道】

int main()
{
    bool ret = createFifo(NAMED_PIPE); // 创建管道
    assert(ret);

    //进程间通信【server负责读， client负责写】
    int fd = open(NAMED_PIPE, O_RDONLY);
    if(fd < 0)
    {
        perror("server open error");
        exit(1);
    }
    char buffer[1024]; // 自己设置一个缓冲区
    while(true) // 不断的读取
    {
        ssize_t s = read(fd, buffer, sizeof(buffer)-1); // 读不到会阻塞
        if(s > 0)
        {
            //读取成功
            buffer[s] = '\0';
            cout << "client -> server: " << buffer << endl;
        }
        else if(s == 0)
        {
            // 管道已经关闭
            cout << "client quit\n";
            break;
        }
        else
        {
            perror("read error");
            exit(1);
        }

    }

    close(fd);
    
    
    removeFifo(NAMED_PIPE); // 删除管道文件

    return 0;
}